package com.cloud.force.api.service;

import java.util.List;

import com.cloud.force.api.bean.MenuTabAuthority;
import com.cloud.force.api.bean.Part;
import com.cloud.force.api.bean.TabMenuHeader;
import com.cloud.force.api.entity.TaskListTab;
import com.cloud.force.api.entity.TaskListTabGroup;
import com.cloud.force.common.result.QkTreeNode;

public interface TaskListTabService {

	/**
	 * 获取分组树
	 * @return
	 */
	List<QkTreeNode> listTree();
	
	/**
	 * 获取全部面板标签
	 * @return
	 */
	List<TabMenuHeader> listTaskListTabHeader();

	/**
	 * 保存环节下Tab的权限
	 * @param parts
	 * @param actDefId
	 */
	void saveUpdatePartAuth(List<MenuTabAuthority> parts, long actDefId, long taskListId);
	
	/**
	 * 获取指定环节下的参与者权限
	 * @param actDefId
	 * @param parts
	 * @return
	 */
	List<Part> listPartAuthority(long taskListId, long actDefId, List<Part> parts);

	/**
	 * 获取当前用户可见的tab项目
	 * @param taskListId
	 * @param actDefId
	 * @param parts
	 * @return
	 */
	List<TaskListTab> listTaskListPartByPart(long taskListId, long actDefId, List<Long> parts);
	
	/**
	 * 保存更新分组
	 * @param group
	 * @return
	 */
	TaskListTabGroup saveUpdateGroup(TaskListTabGroup group);
	
	/**
	 * 刪除面板分組
	 * @param groupId
	 */
	
	void deleteGroup(long groupId);
	
	/**
	 * 保存或更新面板信息
	 * @param tab
	 * @return
	 */
	TaskListTab saveUpdateTaskListTab(TaskListTab tab);
	
	/**
	 * 删除面板
	 * @param menuId
	 * @return
	 */
	long deleteTab(long tabId);
	
	/**
	 * 
	 * @param menuId
	 * @return
	 */
	TaskListTab loadTab(long tabId);
	
	

}
